package com.hbxs.folder.bean;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 分页显示的标准类,基本操作,是先给予-当前页数一共的数据条数-每页显示的条数,
 * 然后在初始化该类,得到总共页数,和开始序号和结束序号,
 * 然后数据库分页用到开始序号和结束序号,得到数据集合后赋值给该类的list属性,
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("分页信息")
public class PageBean{

    @ApiModelProperty(value="当前页数")
    private int pageNum;
    @ApiModelProperty(value="每页的数量")
    private int pageSize;
    @JsonIgnore
    @ApiModelProperty(value="当前页面第一个元素在数据库中的行号")
    private int startRow;
    @JsonIgnore
    @ApiModelProperty(value="当前页面最后一个元素在数据库中的行号")
    private int endRow;
    @ApiModelProperty(value="总记录数")
    private long total;
    @ApiModelProperty(value="总页数")
    private int pages;
    @JsonIgnore
    @ApiModelProperty(value="count信号，3种情况，null的时候执行默认BoundSql,true的时候执行count，false执行分页")
    private boolean count;
    @JsonIgnore
    @ApiModelProperty(value="分页合理化，pageNum<=0 时会查询第一页， pageNum>pages（超过总数时），会查询最后一页")
    private Boolean reasonable;
    @JsonIgnore
    @ApiModelProperty(value="当设置为true的时候，如果pagesize设置为0（或RowBounds的limit=0），就不执行分页，返回全部结果")
    private Boolean pageSizeZero;
    @JsonIgnore
    @ApiModelProperty(value="count查询的列")
    private String countColumn;
    @JsonIgnore
    @ApiModelProperty(value="排序字段")
    private String orderBy;
    @JsonIgnore
    @ApiModelProperty(value="只排序，不分页")
    private boolean orderByOnly;

}
